from rest_framework.response import Response
from rest_framework.views import exception_handler
from django.db import DatabaseError
from rest_framework import status
import logging
logger = logging.getLogger('django')

#
def custom_exception_handler(exc, context):
    response = exception_handler(exc, context)

    if response is None and isinstance(exc, DatabaseError):
        logger.error('Database error occurred: %s', exc)
        response = Response(
            {'message': '服务器内部错误'},
            status=status.HTTP_500_INTERNAL_SERVER_ERROR
        )

    return response